﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using negocios;
using objetos;
using publico;
using System.Data;

namespace softsales.pagina.menu_usuario
{
    public partial class menu_usuario_formulario : System.Web.UI.Page
    {
        OBJ_TB_MENU o_tb_menu = new OBJ_TB_MENU();
        BLL_TB_MENU b_tb_menu = new BLL_TB_MENU();

        OBJ_TB_USUARIO o_tb_usuario = new OBJ_TB_USUARIO();
        BLL_TB_USUARIO b_tb_usuario = new BLL_TB_USUARIO();

        OBJ_TB_MENU_USUARIO o_tb_menu_usuario = new OBJ_TB_MENU_USUARIO();
        BLL_TB_MENU_USUARIO b_tb_menu_usuario = new BLL_TB_MENU_USUARIO();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {
                if (!IsPostBack)
                {

                    b_tb_usuario.PreencheControle(DDL_ID_USUARIO, true);
                    b_tb_menu.ListaMenu(CHK_DISPONIVEL, false);

                    LBL_TITULO_PAGINA.Text = "Gerenciar Menu x Usuário";
                }

                
            }

        }

        protected void BTN_CRIAR_MENU_Click(object sender, EventArgs e)
        {

        
        }

        protected void BTN_ADICIONAR_Click(object sender, EventArgs e)
        {
            LST_SELECIONADO.Items.Clear();

            if (CHK_DISPONIVEL.SelectedItem.Selected)
            
            {
                foreach (ListItem item in CHK_DISPONIVEL.Items)
                {

                    if (item.Selected)
                    {
                        LST_SELECIONADO.Items.Add(new ListItem(item.Text,item.Value));

                    }

                }

            }

            
        }

   

        protected void DDL_ID_USUARIO_SelectedIndexChanged(object sender, EventArgs e)
        {
                String id_usuario = DDL_ID_USUARIO.SelectedValue;
                HF_ID_USUARIO.Value = id_usuario.ToString();

                // DESMARCO TODOS
                for (int i = 0; i <= CHK_DISPONIVEL.Items.Count - 1; i++)
                {
                    CHK_DISPONIVEL.Items[i].Selected = false;
                }

                
                if (id_usuario != string.Empty)
                {                    
                    foreach (OBJ_TB_MENU o_tb_menu in b_tb_menu.ListaMenuPorIdUsuario(Convert.ToInt32(id_usuario)))
                    {
                        for (int i = 0; i <= CHK_DISPONIVEL.Items.Count - 1; i++)
                        {
                            if(CHK_DISPONIVEL.Items[i].Value == o_tb_menu.id.ToString())
                            {
                                CHK_DISPONIVEL.Items[i].Selected  = true;
                            }
                        }
                    }                        
                }              
        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/default.aspx",false);
        }

        protected void BTN_SALVAR_Click(object sender, EventArgs e)
        {
            try
            {
                if (DDL_ID_USUARIO.SelectedValue != string.Empty && LST_SELECIONADO.Items.Count > 0)
                {
                    int id_usuario = Convert.ToInt32(DDL_ID_USUARIO.SelectedValue);


                    // EXCLUIR TODO O MENU QUE EXISTIR PARA O USUARIO
                    b_tb_menu_usuario.Excluir(id_usuario);

                    // INCLUO TUDO NOVAMENTE
                    foreach (ListItem item in LST_SELECIONADO.Items)
                    {
                        o_tb_menu_usuario.id_usuario = id_usuario;

                        o_tb_menu_usuario.id_menu = Convert.ToInt32(item.Value);
                        o_tb_menu_usuario.alterar = true;
                        o_tb_menu_usuario.incluir = true;
                        o_tb_menu_usuario.consultar = true;
                        o_tb_menu_usuario.excluir = true;
                        b_tb_menu_usuario.Incluir(o_tb_menu_usuario);
                    }

                    string msg = "Inclusão/Alteração realizada com sucesso";
                    Master.MSG_ALERTA(msg, "default.aspx", false);

                }
            
            }
            catch (Exception)
            {
                
                throw;
            }
          
           
        }

        protected void BTN_LIMPAR_Click(object sender, EventArgs e)
        {
            LST_SELECIONADO.Items.Clear();
            
        }
     

    }
}